home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 001-025 / scopedisk1 / dnet / readme < prev    next >
Text File  |  1995-03-18  |  8KB  |  222 lines

  1.  
  2. DNET V1.01 Alpha, BSD4.3 end.
  3.  
  4.     DNET (c)Copyright 1987 Matthew Dillon, All Rights Reserved
  5.  
  6.     Matthew Dillon
  7.     891 Regal Rd
  8.     Berkeley, Ca. 94708
  9.  
  10.     ...!ihnp4!ucbvax!dillon     USENET
  11.     dillon@ucbvax.Berkeley.edu    ARPANET
  12.  
  13.     forum:    ...!ihnp4!ucbvax!cory!dnet
  14.         dnet%cory@ucbvax.berkeley.edu
  15.  
  16.     Remember, this is an ALPHA release.
  17.  
  18.     CLEAN    -shell script to clean up object files
  19.     MAKE    -shell script to make in client, dnet, server, and test
  20.     bin    -holds binaries, add this directory to your path
  21.     client    -holds client utilities sources
  22.     dnet    -holds dnet driver source
  23.     doc    -HOLDS FURTHER DOCUMENTATION.  ALSO SEE THE SOURCE AND
  24.          HEADER FILES!
  25.     lib    -holds the support library for client and server source.
  26.     server    -holds server utilities sources
  27.     test    -used to test DNET entirely on the system (i.e. run both
  28.          ends of the driver in different directories).    holds
  29.          source to test program initiator.
  30.  
  31. PREDEFINED VARIABLES:
  32.     The enviroment variables DNETDIR is normally set to a directory
  33.     which you should create for the rendezvous UNIX level sockets.    If
  34.     set you can run dnet, all servers, and all clients from any
  35.     directory and they will setup their UNIX sockets in the right place.
  36.     This variable should have a hanging slash on it ex: ~/.DNET/
  37.  
  38.  
  39. BASIC THEORY, UNIX END:
  40.     The DNET driver accepts connections from clients over UNIX domain
  41.     sockets.  It multiplexes and packetizes the data, sends it to
  42.     whatever is on descriptor 0 (usually your tty).  It receives data
  43.     from the serial port, de-packetizes it, demuxes it, and sends it to
  44.     the proper client.   Additionaly, it receives open requests from
  45.     the remote end and tries to connect to the proper server.
  46.  
  47.     All the servers are UNIX domain sockets in DNETDIR (if the
  48.     enviroment variable DNETDIR is not defined, then in whatever
  49.     directory they were run from).    The name of the socket in the
  50.     directory is .DNET.# where # is the port number in decimal.  DNET
  51.     itself creates a socket called DNET.PORT  .
  52.  
  53. BASIC THEORY, AMIGA END:
  54.     The communications protocol, obviously, is the same. In fact, it is
  55.     completely symetrical (there is no such things as master/slave
  56.     here).
  57.  
  58.     The DNET driver on the Amiga opens the serial port with the default
  59.     preferences (or current modes if you have a terminal program active
  60.     at the time you run DNET).
  61.  
  62.     Servers on the Amiga create public message ports named DNET.PORT.#,
  63.     while the driver creates DNET.PORT  . (look at the Amiga support
  64.     library dnetlib.c to see how the interface works).
  65.  
  66.  
  67. GETTING IT RUNNING TO YOUR AMIGA: (MUCH DIFFERENT FROM V1.00)
  68.  
  69.     Before you can use DNET you must ensure that a valid PATH is
  70.     setup on the Amiga side to DNET's binaries.  You must modify the
  71.     .login on the UNIX side and add the DNETDIR enviroment variable
  72.     as specified above, and must ensure that your UNIX path is setup
  73.     to point to associated binaries on the UNIX side.
  74.  
  75.  
  76.     DNET WILL PROPERLY SET THE PARITY/DATABITS/PROTOCOL.  YOUR
  77.     PREFERENCES SHOULD CONTAIN THE CORRECT BAUD RATE AS THERE IS
  78.     NO PROVISION TO CHANGE IT AT THE MOMENT.
  79.  
  80.     (1)     RUN DNET.  You will get a small terminal window set at
  81.         7 bits even parity.  This is a dinky thing and is only
  82.         meant to allow you to log in and startup the server on
  83.         the remote end.
  84.  
  85.             CLOSE WINDOW:    quit's DNET.
  86.             MENU BUTTON:    START's DNET
  87.  
  88.             ^C (BREAK CLI#):    Abort DNET protocol and go back to
  89.                     DNET terminal window
  90.  
  91.     (2)     dialup and log into your 4.2/3 UNIX system
  92.  
  93.     (3)     start any servers on the UNIX system 's_shell &;s_copy &'
  94.         NOTE: You do not need to start any servers to use FTERM.
  95.         NOTE: Servers may still be active from your last session.
  96.  
  97.     (4)     start dnet on the UNIX system with 'dnet'
  98.  
  99.         The terminal window should automatically go away. DNET
  100.         is now running.  An FTERM is automatically RUN (assuming
  101.         your path is setup properly).
  102.  
  103.         You can also execute other various client programs, such
  104.         as more FTERMs, TERMs, and PUTFILES from your Amiga
  105.         (assuming you started the servers on the UNIX end).. you
  106.         can start the servers on the UNIX end from your TERM/FTERM
  107.         windows also.
  108.  
  109.         You can also startup servers on the Amiga end.    Specifically,
  110.         by doing a 'RUN S_COPY', you can then do a PUTFILES from
  111.         the UNIX end to send things to your Amiga.
  112.  
  113.     AUTO RESTART FEATURE:
  114.  
  115.     At any time, if one end of the connection goes away (you quit DNET,
  116.     for instance), you can RESTART the connection by restarting the
  117.     driver that died.  (I.E. you don't have to hangup, log back in,
  118.     and start from scratch).
  119.  
  120.     KILL FEATURE:
  121.  
  122.     Not completely debugged, but theoretically if, say, the UNIX end
  123.     goes away, you can BREAK the DNET on the Amiga side and it *should*
  124.     EOF all active clients... causing them to abort.
  125.  
  126.     NOTE: The destination directory that PUTFILES files go to on the remote
  127.     host is the one you were in when you started the server.  This applies
  128.     to any server you start, whether on the amiga or the UNIX host.  I
  129.     suggest you make a special directory and start the S_COPY server in
  130.     that.
  131.  
  132.     NOTE: Closing all active clients does NOT kill DNET... you must BREAK
  133.     it and hit the CLOSE gadget in it's window.
  134.  
  135.  
  136. *** UNIX SERVERS ACCESSED FROM AMIGA CLIENTS ***
  137.  
  138. S_COPY:     File transfer server.  When running on the UNIX end, you
  139.         can then use the PUTFILES command on the Amiga end to send files
  140.         or ENTIRE DIRECTORY STURCTURES from the Amiga to the UNIX
  141.         host.
  142.  
  143. S_SHELL:    Rlogin server.    When running on the UNIX end, you can then
  144.         use the TERM command on the Amiga end to start up a new
  145.         login window.
  146.  
  147.         NOTE: These windows do not automatically adjust the tty rows
  148.         and columns.
  149.  
  150. (internal):     FAST CSH server.  This is an internal server in DNET.  You
  151.         use the FTERM command on the Amiga end to start up a new
  152.         shell window.  Response is much better as data flow s
  153.         going through one less process.
  154.  
  155.         NOTE: These windows will AUTOMATICALLY adjust the tty rows
  156.         and columns when you resize the window.  The disadvantage
  157.         is that they run on unnamed PTY's, and thus do not show up on
  158.         'who'
  159.  
  160. *** AMIGA SERVERS ACCESSED BY UNIX CLIENTS:***
  161.  
  162. S_COPY:     File Transfer server.  When running on the Amiga, you can
  163.         use the PUTFILES command on the UNIX end to transfer
  164.         files or entire directory structures from your UNIX account
  165.         to your Amiga.
  166.  
  167. S_SHELL:    Access a CLI from the UNIX end.  use 'DSOC 8196' from
  168.         the UNIX end to connect.
  169.  
  170.         This requires two things. (1) My PIPE: device must be
  171.         mounted, and (2) a NEWCLI must be run on the PIPE: as
  172.         follows:
  173.  
  174.         NEWCLI <NIL: >NIL: pipe:shell/t scriptfile
  175.  
  176.  
  177. KILLING DNET ON THE UNIX END WITHOUT HANGING UP:
  178.  
  179.     The Utility program QUITDNET will talk to the local DNET which will
  180.     send a message to the DNET running on your UNIX system causing it
  181.     to quit.  You can tell it quit by looking at the Rx/Tx L.E.Ds on
  182.     your modem ... when the UNIX system starts echoing character's
  183.     normally.
  184.  
  185.     Then, close all client sessions, BREAK the DNET on your Amiga, and
  186.     quit DNET by hitting the close gadget on the DNET window.
  187.  
  188.     DNET will never "give up"... it will continue retrying forever or until
  189.     you ^C it.
  190.  
  191.     Restoration Sequence... logging off, hanging up.
  192.  
  193.     (1)     Ensure all connections are closed and DNET is idle
  194.     (2)     BREAK (^C) DNET and all servers... they should all exit.
  195.     (3)     hangup the phone   (2) can be swapped with (3)
  196.  
  197.     close DNET's window.  Any servers left on the UNIX system will
  198.     still be running and available next time you log on.
  199.  
  200.  
  201.  
  202. QUICKIE DESCRIPTION OF LOW LEVEL PACKET THEORY:
  203.  
  204.     DNET uses a windowed-packet scheme, as in transmission windows... up
  205. to 4 packets can be sent before one of them is acked.  Each packet is fully
  206. checked with three check bytes (one on the header, and two for the data).  If
  207. a packet fails it is ignored.  If the receiver detects a missing packet it
  208. requests it be resent.    If the sender doesn't get an ack within a given
  209. timeout it sends a CHECK packet, which asks the receiver if it got it or not
  210. (rather than just resend the packet, which might take a while).
  211.  
  212.     The channel multiplexing is embedded in the packet data... that is,
  213. you might have the data for several channels in a single packet, so
  214. maximum throughput is maintained even when you have a lot of little things
  215. going on.
  216.  
  217.  
  218.  
  219. TODO:
  220.     -Too Much Buffer Copying
  221.  
  222.